Optical codes, such as barcodes and other machine-readable indicia, appear in various places in a variety of applications. There are a variety of such optical codes, including: linear barcodes (e.g., UPC code), 2D codes including stacked barcodes (e.g., PDF-417 code), and matrix codes (e.g., Datamatrix code, QR code, or Maxicode). Businesses have begun sending optical codes to customers who display such optical codes on a portable electronic device, such as a mobile telephone, personal digital assistant, palm, tablet, or laptop computer, or other suitable device having an electronic display, such as a liquid crystal display (LCD). For example, an airline passenger may display an optical code on a portable electronic device for an airline employee to read using a data reader as verification of the passenger's ticket. Or, a customer in a store may display an optical code on a portable electronic device for a cashier to read using a data reader to redeem a coupon. Optical codes are also included on other items having highly, or relatively highly, reflective surfaces, for example, but not limited to, identification (ID) cards, aluminum cans, and objects in plastic packaging.
The present inventors have recognized that optical codes presented on, or under, a highly, or relatively highly, reflective surface are typically difficult to decode using general-purpose data readers. For example, the present inventors have recognized that general-purpose data readers commonly use artificial illumination to illuminate an object bearing an optical code to create an image of the optical code having sufficient contrast for decoding the optical code. The present inventors have also recognized that highly, or relatively highly, reflective surfaces bearing optical codes commonly reflect a large amount of such artificial illumination resulting in a saturated, or partially saturated, image that does not have sufficient contrast for decoding the optical code because all, or portions, of the image appear light, or white. Thus, the present inventors have identified a need for a general-purpose data reader that has greater versatility in handling reading of optical codes appearing on (or behind) highly, or relatively highly, reflective surfaces.